/*
 * @Description: Test01Array
 * @Author: rendc
 * @Date: 2024-09-04 10:13:55
 * @LastEditors: rendc
 * @LastEditTime: 2024-09-04 11:21:34
 */
public class Test01Array{
  // main
  public static void main(String[] args){
    // 数组定义的方式
    // 数据类型[] 数组名
    // int[] arr;
    // double[] arr;
    // 数据类型 数组名[]
    // int arr[]
    // double arr[]
    // 动态初始化 初始化一个长度为3的数组 这里的
    // new是在为数组开辟内存空间，所以长度必须要有
    // 可以大于等于0 但是一般大于0 不能为负数
    // int[] arr1 = new int[3];
    // 静态初始化  
    // int[] arr2 = new int[]{1, 2, 3, 4, 5};
    // 错误：不能指定数组长度 如果指定长度 编译器会认为我们要动态初始化
    // int[] arr2 = new int[5]{1, 2, 3, 4, 5};
    // 简化版的静态初始化
    // int[] arr3 = {1, 2, 3, 4, 5};
    // 错误：不能分两行书写
    // int[] arr3;
    // arr3 = {1, 2, 3, 4, 5};
    // 定义一个int类型的数组 arr
    // 动态初始化
    // int[] arr;
    // arr = new int[3];
    // System.out.println("arr:"+arr);
    // System.out.println("arr[0]:"+arr[0]);
    // System.out.println("arr[1]:"+arr[1]);
    // System.out.println("arr[2]:"+arr[2]);
    // System.out.println("arr.length:"+arr.length);
    // // 获取数组元素的值
    // for(int i = 0; i < arr.length; i++){
    //   System.out.println("arr["+i+"]:"+arr[i]);
    // }
    // // 给数组元素赋值
    // for(int i = 0; i < arr.length; i++){
    //   arr[i] = i;
    // }
    // // 获取数组元素的值
    // for(int i = 0; i < arr.length; i++){
    //   System.out.println("arr["+i+"]:"+arr[i]);
    // }

    // String[] arr2 = new String[3];
    // // 获取数组元素的值
    // for(int i = 0; i < arr.length; i++){
    //   System.out.println("String:arr2["+i+"]:"+arr2[i]);
    // }
    // 静态初始化  
    int[] arr1;
    arr1 = new int[]{1,2,3,4};
    // 获取数组元素的值
    for(int i = 0; i < arr1.length; i++){
      System.out.println("arr1["+i+"]:"+arr1[i]);
    }
    // 简化版
    // int[] arr2;// 错误
    // arr2 = {1,2,3,4,5,6,7}; // 错误
    int[] arr2 = {1,2,3};
    // 获取数组元素的值
    for(int i = 0; i < arr2.length; i++){
      System.out.println("arr2["+i+"]:"+arr2[i]);
    }
    int[] arr3 = arr2;
    // 获取数组元素的值
    for(int i = 0; i < arr3.length; i++){
      System.out.println("arr3["+i+"]:"+arr3[i]);
    }
    arr2[0] = 100;
    // 获取数组元素的值
    for(int i = 0; i < arr2.length; i++){
      System.out.println("arr2["+i+"]:"+arr2[i]);
    }
    arr3 = null; // 会导致空指针异常
    // 获取数组元素的值
    // for(int i = 0; i < arr3.length; i++){
    //   System.out.println("arr3["+i+"]:"+arr3[i]);
    // }
  }
}